package com.wanmait.schedule.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageInfo;
import com.wanmait.schedule.entity.*;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wanmait.schedule.util.Result;

import java.util.List;

/**
 * <p>
 * 项目表 服务类
 * </p>
 *
 * @author wanmait
 * @since 2022-03-02
 */
public interface ProjectService extends IService<Project> {

    //通过企业用户id查询所有的项目
    List<Project> findAllProject(Integer companyUserId);
//-------------------------------------------------------------------------------------
    /*部长功能*/
    /**部长查看分配的项目,分页(未通过的项目)
     * */
    Page<Project> selectProjectByPage(Integer pageSize, Integer pageNum,Integer companyUserId);
    /**
     * 部长查看项目详情
    * */
    Project selectOneProjectById(Integer projectId);
    /*老板功能*/
    /**老板查看分配的项目,分页
     * */
    PageInfo<Project> findPage(Integer pageNum, Integer pageSize,Integer companyId);
    /**老板修改分配的项目
     * */
    Boolean updateProjectFindById(Project project);
    /*老板查看项目跟踪表
    * */
    PageInfo<Project> projectFindAll(Integer pageNum,Integer pageSize,Integer companyId);
    /*老板发布项目
    * */
    boolean release(Project project);
    /*项目跟踪表下任务详情
    * */
    List<Task> taskList(Integer id);

    /**部长进行任务提交
    * */
    Boolean submitProject(Integer projectId);

    /**依据部长的companyUserID 搜索project表中 某部门某企业的 提交0通过0  ，获取到这些项目ids
     * */
    List<Reject> rejectProjectList(Integer companyUserId);

    /*老板项目跟踪表搜索
    * */
    List<Project> search(String searchContent);
    /*发布个人项目初始化成员
    * */
    List<CompanyUser> initCompanyUser(Integer companyId);
    /**部长查看未提交的任务
     * */
//    List<Project> selectNoSubmitProjects(Integer id,String keyword);
//    List<Project> selectNoSubmitProjects2(Integer id);





}
